package com.ruoyi.training.mapper;

import java.util.List;
import com.ruoyi.training.domain.PreInvoice;
import com.ruoyi.training.vo.payment.PreInvoiceVo;

/**
 * 预开票Mapper接口
 * 
 * @author hcc
 * @date 2025-09-29
 */
public interface PreInvoiceMapper 
{
    /**
     * 查询预开票
     * 
     * @param preInvoiceId 预开票主键
     * @return 预开票
     */
    public PreInvoice selectPreInvoiceByPreInvoiceId(String preInvoiceId);

    /**
     * 查询预开票列表
     * 
     * @param preInvoice 预开票
     * @return 预开票集合
     */
    public List<PreInvoice> selectPreInvoiceList(PreInvoice preInvoice);

    /**
     * 新增预开票
     * 
     * @param preInvoice 预开票
     * @return 结果
     */
    public int insertPreInvoice(PreInvoice preInvoice);

    /**
     * 修改预开票
     * 
     * @param preInvoice 预开票
     * @return 结果
     */
    public int updatePreInvoice(PreInvoice preInvoice);

    /**
     * 删除预开票
     * 
     * @param preInvoiceId 预开票主键
     * @return 结果
     */
    public int deletePreInvoiceByPreInvoiceId(String preInvoiceId);

    /**
     * 批量删除预开票
     * 
     * @param preInvoiceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePreInvoiceByPreInvoiceIds(String[] preInvoiceIds);

    /**
     * 批量删除预开票信息
     */
    public int removePreInvoices(String[] preInvoiceIds);

    /**
     * 查询预开票列表
     */
    public List<PreInvoice> selectList(PreInvoiceVo preInvoiceVo);
}
